package com.shop.cereshop.app.tencent.im.service;

import com.shop.cereshop.app.tencent.im.model.notice.SendNoticeParam;
import com.shop.cereshop.app.tencent.im.model.msg.BaseSendMsgParam;
import com.shop.cereshop.commons.result.Result;
import com.shop.cereshop.commons.tencent.im.model.msg.data.MsgData;

public interface MsgService {

    /**
     * 单发单聊消息
     * @param param  消息参数
     * @return  发送结果
     */
    Result<Void> sendC2cMsg(BaseSendMsgParam<MsgData> param);

    /**
     * 发送系统通知
     * @param param  消息参数
     * @return  发送结果
     */
    Result<Void> sendSysNotice(SendNoticeParam param);

    /**
     * 发送系统通知 （动态/评论/商品/店铺  被评论/被回复/被点赞/被收藏）
     * @param receiverId  消息接收者ID
     * @param type        类型 (1:评论 2:回复 3:点赞 4:取消点赞 5:收藏 6:取消收藏 7:关注 8:取消关注 9:打赏 10:分享 21:系统公告 22:平台咨询)
     * @param targetType  目标内容类型 (1:视频，2:动态/帖子，3:评论 4:店铺，5:商品)
     * @param targetId    目标内容唯一ID
     * @param actorId     操作者账号ID
     * @param actorNick   操作者昵称
     */
    void sendNotice(Long receiverId, Integer type, Integer targetType, String targetId, Long actorId, String actorNick);

}
